Foothold position control system and method for biped robot

ABSTRACT

A foothold position control system and method for a biped robot are provided. 1) A feasible collision-free path is planned by using a path planning algorithm; 2) an available foothold area of a swing foot is determined according to step-length constraints, movement capabilities, foot sizes, and center offsets of a biped robot; and 3) fuzzy processing is performed to determine a specific foothold position of the biped robot. Selection of suitable foothold positions on both sides of a path when a biped robot executes specific walking actions after finishing path planning is realized. The foothold position control system and method has the advantages of being simple and easy to implement, having low computational load and high speed, being capable of exerting extreme movement capabilities of different biped robots, enabling more flexible movement of the biped robots, and so on.

CROSS REFERENCE TO THE RELATED APPLICATIONS

This application is the national phase entry of International Application No. PCT/CN2020/089343, filed on May 9, 2020, which is based upon and claims priority to Chinese Patent Application No. 202010116012.6, filed on Feb. 25, 2020, the entire contents of which are incorporated herein by reference.

TECHNICAL FIELD

The present disclosure belongs to the technical field of biped robots, and specifically, relates to a foothold position control system and method for a biped robot.

BACKGROUND

With the development of science and technology, there are more and more kinds of robots which have been more and more widely used. A biped robot is a comprehensive electromechanical integration platform integrating multiple disciplines such as mechanics, sensing, electronics, control, artificial intelligence, and bionics. The biped robot has a humanoid structure and is easy to implement most human actions, and is even more suitable for accomplishing some tasks in the areas of disaster relief, family services, aerospace, and so on. Although the biped robot has achieved remarkable results in walking, running, jumping, and so on, and has made great progress in straight walking, balance adjustment, modular management, and other control aspects, there is still a big gap in intelligent and autonomous movement compared with other types of robots or the human beings the biped robot imitates. Especially when a path from a start location to a task location is known in the environment, the selection of a foothold position after the biped robot specifically takes a step is particularly important and directly affects the performance of the robot such as the capability of following the path, flexibility, walking balance, and stability.

In the prior art, 10 to 50 available foothold positions of a swing foot with respect to a support foot are established in advance by permutation and combination according to structural constraints and movement capabilities of the biped robot, and are combined into one to three sets. In this way, other steps the biped robot may take at a certain time and under certain circumstances are severely restricted in the x-coordinate direction, y-coordinate direction, and angular direction, and the foothold position is limited to these fixed options, which is unfavorable for flexible movement of the biped robot. Besides, the non-autonomous and non-intelligent characteristics of the biped robot have been decided in selecting the foothold position from the fixed sets, and the foothold position is actually determined as soon as a planned path from a start position to a target position is determined in some methods, in which there is no process of selecting variable foothold positions.

SUMMARY

In view of the deficiencies in the prior art, the present disclosure provides a foothold position control system and method for a biped robot, where after path planning, fuzzy processing is performed to determine a specific foothold position of a robot, and the foothold position is variable, thereby ensuring flexibility and stability when the robot lands.

The present disclosure achieves the aforementioned technical objective by the following technical means.

A foothold position control system for a biped robot includes a laser radar or vision sensor, a gyroscope, a six-component force sensor, and an industrial computer, where a fuzzy controller in the industrial computer separately uses x_(sd), x_(en), y_(sd), y_(en), θ_(sd), and θ_(pt) as inputs and performs fuzzy processing to obtain a specific foothold position of a swing foot in an available foothold area, where x_(sd), y_(sd) is a real-time position of a support foot of a biped robot obtained by the six-component force sensor, x_(en), y_(en) is a position of an obstacle in a robot body coordinate system obtained by the laser radar or vision sensor, θ_(sd) is an initial yaw angle of the biped robot obtained by the gyroscope, and θ_(pt) is an angle between a straight line formed by a current path node and an associated path node in a next step and an x axis of a world coordinate system.

In the aforementioned technical solution, the

${\theta_{pt} = {\tan^{- 1}\frac{y_{{pt} + 1} - y_{pt}}{x_{{pt} + 1} - x_{pt}}}},{{\left( {x_{{pt} + 1},y_{{pt} + 1}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{next} - x_{i}} \right)^{2} + \left( {y_{next} - y_{i}} \right)^{2}}}};}$ where x_(pt), y_(pt) is a path node closest to a position of a current support foot, x_(pt+1), y_(pt+1) is a path node closest to a foothold position after a current swing foot lands, x_(next), y_(next) is a specific foothold position of the swing foot in an available foothold range, and x_(i), y_(i) is a path node.

A foothold position control method for a biped robot includes planning a passing path; determining an available foothold area of a swing foot on the passing path according to step-length constraints, movement capabilities, foot sizes, and center offsets of a biped robot; and performing fuzzy processing to determine a specific foothold position of the robot.

Further, the fuzzy processing includes fuzzification, fuzzy rule reasoning, and defuzzification.

Furthermore, a process of fuzzy processing on x_(en) and x_(sd) is: inputting x_(pt)−x_(pt−1) and x_(en), and outputting Δx_(next);

(1) fuzzification

fuzzifying x_(pt)−x_(pt−1) as backward, small step forward, medium step forward, and big step forward, with corresponding ranges being respectively

$\left\lbrack {{- D_{\min}},0} \right\rbrack,\left\lbrack {0,{\frac{1}{2}D_{\max}}} \right\rbrack,\left\lbrack {{\frac{1}{3}D_{\max}},{\frac{2}{3}D_{\max}}} \right\rbrack,{{{and}\left\lbrack {{\frac{1}{2}D_{\max}},D_{\max}} \right\rbrack};}$ fuzzifying x_(en) as very near, near, medium, far, and very far, with corresponding ranges being respectively

$\left\lbrack {{\frac{1}{2}D_{\max}},D_{\max}} \right\rbrack,\left\lbrack {{\frac{3}{4}D_{\max}},{2D_{\max}}} \right\rbrack,\left\lbrack {{\frac{3}{2}D_{\max}},{3D_{\max}}} \right\rbrack,\left\lbrack {{\frac{5}{2}D_{\max}},\ {4D_{\max}}} \right\rbrack,{{{and}\left\lbrack {{4D_{\max}},\ {5D_{\max}}} \right\rbrack};}$ fuzzifying Δx_(next) as backward, short, medium, and long, with corresponding ranges being respectively

$\left\lbrack {{- D_{\min}},0} \right\rbrack,\left\lbrack {0,{\frac{1}{2}D_{\max}}} \right\rbrack,\left\lbrack {{\frac{1}{3}D_{\max}},{\frac{2}{3}D_{\max}}} \right\rbrack,{{and}\left\lbrack {{\frac{1}{2}D_{\max}},D_{\max}} \right\rbrack},$ where D_(max) is a maximum forward movable distance of the swing foot, and D_(min) is a maximum backward movable distance of the swing foot;

(2) fuzzy rule reasoning

if x_(pt)−x_(pt−1)=backward, then x_(next)=backward;

if x_(pt)−x_(pt−1)=small step forward, and x_(en)=very near; then x_(next)=short;

if x_(pt)−x_(pt−1)=small step forward, and x_(en)=near; then x_(next)=short;

if x_(pt)−x_(pt−1)=small step forward, and x_(en)=medium; then x_(next)=medium;

if x_(pt)−x_(pt−1)=small step forward, and x_(en)=far; then x_(next)=long;

if x_(pt)−x_(pt−1)=small step forward, and x_(en)=very far; then x_(next)=long;

if x_(pt)−x_(pt−1)=medium step forward, and x_(en)=very near; then x_(next)=short;

if x_(pt)−x_(pt−1)=medium step forward, and x_(en)=near; then x_(next)=short;

if x_(pt)−x_(pt−1)=medium step forward, and x_(en)=medium; then x_(next)=medium;

if x_(pt)−x_(pt−1)=medium step forward, and x_(en)=far; then x_(next)=long;

if x_(pt)−x_(pt−1)=medium step forward, and x_(en)=very far; then x_(next)=long;

if x_(pt)−x_(pt−1)=big step forward, and x_(en)=very near; then x_(next)=short;

if x_(pt)−x_(pt−1)=big step forward, and x_(en)=near; then x_(next)=short;

if x_(pt)−x_(pt−1)=big step forward, and x_(en)=medium; then x_(next)=medium;

if x_(pt)−x_(pt−1)=big step forward, and x_(en)=far; then x_(next)=medium;

if x_(pt)−x_(pt−1)=big step forward, and x_(en)=very far; then x_(next)=long; and

(3) defuzzification using a centroid method

${\Delta x_{next}} = \frac{{\left( {x_{pt} - x_{{pt} - 1}} \right)\mu_{x_{pt} - x_{{pt} - 1}}} + {x_{en}\mu_{x_{en}}}}{\mu_{x_{pt} - x_{{pt} - 1}} + \mu_{x_{en}}}$

where u is a membership value.

Furthermore, a process of fuzzy processing on y_(en) and y_(sd) is: inputting y_(pt)−y_(pt−1) and y_(en), and outputting Δy_(next);

(1) fuzzification

fuzzifying y_(pt)−y_(pt−1) as inward, small swing outward, medium swing outward, and big swing outward, with corresponding ranges being respectively

$\left\lbrack {L_{\min},B} \right\rbrack,\left\lbrack {B,{B + {\frac{1}{2}\left( {L_{\max} - B} \right)}}} \right\rbrack,\left\lbrack {{B + {\frac{1}{3}\left( {L_{\max} - B} \right)}},{B + {\frac{2}{3}\left( {L_{\max} - B} \right)}}} \right\rbrack,{{{and}\left\lbrack {{B + {\frac{1}{2}\left( {L_{\max} - B} \right)}},L_{\max}} \right\rbrack};}$ fuzzifying y_(en) as very near, near, medium, far, and very far, with corresponding ranges being respectively

$\left\lbrack {L_{\max},{2L_{\max}}} \right\rbrack,\left\lbrack {{\frac{3}{2}L_{\max}},{\frac{5}{2}L_{\max}}} \right\rbrack,\left\lbrack {{2L_{\max}},{3L_{\max}}} \right\rbrack,\left\lbrack {{\frac{5}{2}L_{\max}},{\frac{7}{2}L_{\max}}} \right\rbrack,{{{and}\left\lbrack {{3L_{\max}},\ {4L_{\max}}} \right\rbrack};}$ fuzzifying Δy_(next) as inward, small, medium, and large, with corresponding ranges being respectively

$\left\lbrack {L_{\min},B} \right\rbrack,\left\lbrack {B,{B + {\frac{1}{2}\left( {L_{\max} - B} \right)}}} \right\rbrack,\left\lbrack {{B + {\frac{1}{3}\left( {L_{\max} - B} \right)}},{B + {\frac{2}{3}\left( {L_{\max} - B} \right)}}} \right\rbrack,{{and}\left\lbrack {{B + {\frac{1}{2}\left( {L_{\max} - B} \right)}},L_{\max}} \right\rbrack},$ where L_(max) is a maximum outward movable distance, L_(min) is a maximum inward movable distance, and B is a distance between projections of centers of gravity of two legs when the biped robot stands upright;

(2) fuzzy rule reasoning

if y_(pt)−y_(pt−1)=inward, then Δy_(next)=inward;

if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=very near; then Δy_(next)=small;

if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=near; then Δy_(next)=small;

if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=medium; then Δy_(next)=medium;

if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=far; then Δy_(next)=large;

if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=very far; then Δy_(next)=large;

if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=very near; then Δy_(next)=small;

if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=near; then Δy_(next)=small;

if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=medium; then Δy_(next)=medium;

if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=far; then Δy_(next)=large;

if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=very far; then Δy_(next)=large;

if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=very near; then Δy_(next)=small;

if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=near; then Δy_(next)=small;

if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=medium; then Δy_(next)=medium;

if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=far; then Δy_(next)=large;

if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=very far; then Δy_(next)=large; and

(3) defuzzification using a centroid method

${\Delta y_{next}} = \frac{{\left( {y_{pt} - y_{{pt} - 1}} \right)\mu_{y_{pt} - y_{{pt} - 1}}} + {y_{en}\mu_{y_{en}}}}{\mu_{y_{pt} - y_{{pt} - 1}} + \mu_{y_{en}}}$

where u is a membership value.

Furthermore, a process of fuzzy processing on θ_(sd) and θ_(pt) is: inputting θ_(sd) and θ_(pt), and outputting Δθ_(next);

(1) fuzzification

fuzzifying θ_(sd) as inward yaw, small-amplitude outward yaw, medium-amplitude outward yaw, and large-amplitude outward yaw, with corresponding ranges being respectively

$\left\lbrack {{- \theta_{\min}},0} \right\rbrack,\left\lbrack {0,{\frac{1}{2}\theta_{\max}}} \right\rbrack,\left\lbrack {{\frac{1}{3}\theta_{\max}},{\frac{2}{3}\theta_{\max}}} \right\rbrack,{{{and}\left\lbrack {{\frac{1}{2}\theta_{\max}},\theta_{\max}} \right\rbrack};}$ fuzzifying θ_(pt) as negative big orientation, negative small orientation, medium, positive small orientation, and positive big orientation, with corresponding ranges being respectively

$\left\lbrack {{{- \frac{\pi}{2}},} - \frac{\pi}{4}} \right\rbrack,\left\lbrack {{{- \frac{\pi}{3}},} - \frac{\pi}{6}} \right\rbrack,\left\lbrack {{- \frac{\pi}{4}},\frac{\pi}{4}} \right\rbrack,\left\lbrack {\frac{\pi}{6},\frac{\pi}{3}} \right\rbrack,{{{and}\left\lbrack {\frac{\pi}{4},\frac{\pi}{2}} \right\rbrack};}$ fuzzifying Δθ_(next) as inward yaw, small-amplitude outward yaw, medium-amplitude outward yaw, and large-amplitude outward yaw, with corresponding ranges being respectively

$\left\lbrack {{- \theta_{\min}},0} \right\rbrack,\left\lbrack {0,\frac{1}{2}\theta_{\max}} \right\rbrack,\left\lbrack {\frac{1}{3}\theta_{\max},\frac{2}{3}\theta_{\max}} \right\rbrack,{{and}\left\lbrack {\frac{1}{2}\theta_{\max},\theta_{\max}} \right\rbrack},$ where θ_(min) is a maximum inward yaw angle of the swing foot, and θ_(max) is a maximum outward yaw angle of the swing foot;

(2) fuzzy rule reasoning

when a support foot is a left foot:

if θ_(sd)=inward yaw, and θ_(pt)=negative big orientation; then Δθ_(next)=large-amplitude outward yaw;

if θ_(sd)=inward yaw, and θ_(pt)=negative small orientation; then Δθ_(next)=medium-amplitude outward yaw;

if θ_(sd)=inward yaw, and θ_(pt)=medium; then Δθ_(next)=small-amplitude outward yaw;

if θ_(sd)=inward yaw, and θ_(pt)=positive small orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=inward yaw, and θ_(pt)=positive big orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=negative big orientation; then Δθ_(next)=large-amplitude outward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=negative small orientation; then Δθ_(next)=medium-amplitude outward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=medium; then Δθ_(next)=small-amplitude outward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=positive small orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=positive big orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=negative big orientation; then Δθ_(next)=large-amplitude outward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=negative small orientation; then Δθ_(next)=medium-amplitude outward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=medium; then Δθ_(next)=inward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=positive small orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=positive big orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=negative big orientation; then Δθ_(next)=medium-amplitude outward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=negative small orientation; then Δθ_(next)=small-amplitude outward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=medium; then Δθ_(next)=inward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=positive small orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=positive big orientation; then Δθ_(next)=inward yaw;

when the support foot is a right foot:

if θ_(sd)=inward yaw, and θ_(pt)=negative big orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=inward yaw, and θ_(pt)=negative small orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=inward yaw, and θ_(pt)=medium; then Δθ_(next)=small-amplitude outward yaw;

if θ_(sd)=inward yaw, and θ_(pt)=positive small orientation; then Δθ_(next)=medium-amplitude outward yaw;

if θ_(sd)=inward yaw, and θ_(pt)=positive big orientation; then Δθ_(next)=large-amplitude outward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=negative big orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=negative small orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=medium; then Δθ_(next)=small-amplitude outward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=positive small orientation; then Δθ_(next)=medium-amplitude outward yaw;

if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=positive big orientation; then Δθ_(next)=large-amplitude outward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=negative big orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=negative small orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=medium; then Δθ_(next)=inward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=positive small orientation; then Δθ_(next)=small-amplitude outward yaw;

if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=positive big orientation; then Δθ_(next)=medium-amplitude inward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=negative big orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=negative small orientation; then Δθ_(next)=inward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=medium; then Δθ_(next)=inward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=positive small orientation; then Δθ_(next)=small-amplitude outward yaw;

if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=positive big orientation; then Δθ_(next)=medium-amplitude inward yaw; and

(3) defuzzification

defuzzification using a centroid method:

${\Delta\theta_{next}} = \frac{{\theta_{pt}\mu_{\theta_{pt}}} + {\theta_{sd}\mu_{\theta_{sd}}}}{\mu_{\theta_{pt}} + \mu_{\theta_{sd}}}$

where u is a membership value.

Furthermore, the specific foothold position of the robot is (x_(next), y_(next), θ_(next)), and x_(next)=x_(sd)+Δx_(next), y_(next)=y_(sd)+Δy_(next), and θ_(next)=θ_(sd)+Δθ_(next).

The beneficial effects of the present disclosure are as follows:

(1) In the present disclosure, x_(sd), x_(en), y_(sd), y_(en), θ_(sd), and θ_(pt) are separately used as inputs of a fuzzy controller, fuzzy processing is performed, fuzzy processing including fuzzification, fuzzy rule reasoning, and defuzzification, finally x_(next), y_(next), and θ_(next) are output, and a specific foothold position of a swing foot of a robot in an available foothold area is determined; and the planning of the foothold position is determining the available foothold area according to step-length constraints, movement capabilities, foot sizes, and center offsets of the biped robot, instead of setting foothold sets in advance and selecting few limited foothold positions in the foothold sets; it is unnecessary to design a limited number of foothold sets in advance, the flexibility of the biped robot is improved, and movement capabilities of the biped robot are fully exerted, so that the foothold of the biped robot after path planning can be selected in an autonomous and intelligent way.

(2) The fuzzy control process in the present disclosure considers the position of a closest path node, the position of an obstacle, and the position of a current support foot, so that the fuzzy control process is more precise and comprehensive, and the selection of the foothold position is more reasonable.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic structural view of a foothold position control system for a biped robot in the present disclosure.

FIG. 2 is a flowchart of a foothold position control method for a biped robot in the present disclosure.

FIG. 3 is an overall effect diagram of a passing path in the present disclosure.

FIG. 4 is a schematic diagram of an available foothold area of a swing foot in the present disclosure.

FIG. 5 is a schematic diagram of a fuzzy control process in the present disclosure.

FIG. 6 is a schematic diagram of θ_(pt) in the present disclosure.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The present disclosure is further illustrated below with reference to the accompanying drawings and specific embodiments, but the protection scope of the present disclosure is not limited thereto.

As shown in FIG. 1 , a foothold position control system for a biped robot includes a laser radar or vision sensor 1, a gyroscope 3, a six-component force sensor 6, and an industrial computer; the laser radar or vision sensor 1 is disposed on the top of a biped robot body 2, and is used for obtaining environmental information of a biped robot, and position coordinates (x_(en), y_(en)) of an obstacle 8 in the environmental information in a robot body coordinate system; the gyroscope 3 is disposed in the upper part of the biped robot body 2, and is used for obtaining an initial value of a yaw angle θ_(sd) of the biped robot; the six-component force sensor 6 is disposed in a sole of the biped robot body 2, and is used for obtaining a real-time position (x_(sd), y_(sd)) of a support foot of the biped robot; the laser radar or vision sensor 1, the gyroscope 3, and the six-component force sensor 6 all perform signal transmission with the industrial computer, a fuzzy controller is disposed in the industrial computer, and the fuzzy controller converts the real-time position (x_(sd), y_(sd)) of the support foot in a world coordinate system into a path node (x_(pt), y_(pt)) closest to the position of the current support foot (see equation (1)); x_(sd), x_(en), y_(sd), y_(en), θ_(sd) and θ_(pt) are separately used as inputs of the fuzzy controller, and fuzzification, fuzzy rule reasoning, and defuzzification are performed to obtain a specific foothold position (x_(next), y_(next), θ_(next)) of the swing foot in an available foothold range, and the swing foot is controlled to land. The θ_(pt) is an angle between a straight line formed by a current path node and an associated path node in a next step and an x axis of the world coordinate system (see FIG. 6 ) (see equations (4) and (5) for the obtaining process). The x-axis direction in the figure is the advancing direction of the robot, the y-axis direction is perpendicular to the advancing direction of the robot, and they form the robot body coordinate system; 4 is a lower limb of the robot, and 7 is a foothold position of the robot.

As shown in FIG. 2 , a foothold position control method for a biped robot specifically includes the following steps:

Step (1): Path Planning

The laser radar or vision sensor 1 is mounted on the biped robot to obtain an environmental map, grid processing is performed on the environmental map, a start point (x_(start), y_(start)) and a task goal (x_(goal), y_(goal)) are set in the grid map, and an optimal collision-free path (namely, the path 5 in FIG. 3 ) from the start to the goal is planned by using an A* algorithm, where each path point is called a path node and represented as (x_(i), y_(i)) (i=1 . . . n); that is, passable path nodes form a passable path Path=(x_(start), y_(start))∪(x₁, y₁) . . . ∪(x₂, y₂) . . . ∪(x_(N), y_(N))∪(x_(goal), y_(goal)), as shown in FIG. 3 , where 9 is the start, and 10 is the goal.

Step (2): Determining of Foothold Range

An available foothold area of the swing foot is determined according to step-length constraints, movement capabilities, foot sizes, and center offsets of a specific biped robot.

When the advancing direction of the biped robot is the x-axis direction, x_(max)=x_(sd)+D_(max), x_(min)=x_(sd)−D_(min), y_(max)=y_(sd)+L_(max), y_(min)=y_(sd)+L_(min);

when the advancing direction of the biped robot is along the y axis, y_(max)=y_(sd)+D_(max), y_(min)=y_(sd)−D_(min), x_(max)=x_(stand)+L_(max), x_(min)=x_(sd)+L_(min);

when the angle between the advancing direction of the biped robot and the x axis is θ,

${x_{\max} = {x_{sd} + \frac{D_{\max}}{\cos(\theta)}}},{x_{\min} = {x_{sd} - \frac{D_{\min}}{\cos(\theta)}}},{y_{\max} = {y_{sd} + \frac{L_{\max}}{\cos(\theta)}}},{y_{\min} = {y_{sd} + {\frac{L_{\min}}{\cos(\theta)}.}}}$

Thus it can be determined that the available foothold area of the swing foot of the biped robot is [x_(min) x_(max)]∪[y_(min) y_(max)]∪[θ_(min) θ_(max)], as shown in FIG. 4 , where the area in the dashed box is the available foothold area of the swing foot, where θ_(max) is a maximum outward yaw angle of the swing foot, θ_(min) is a maximum inward yaw angle of the swing foot, D_(max) is a maximum forward movable distance, D_(min) is a maximum backward movable distance, L_(max) is a maximum outward movable distance, L_(min) is a maximum inward movable distance, and B is a distance between projections of centers of gravity of two legs when the biped robot stands upright.

Step (3): Determining of Specific Foothold Position

Any (x, y, θ) combination in the available foothold area can represent a possible foothold position of the actual swing foot.

According to the position (x_(sd), y_(sd), θ_(sd)) of the support foot, the position (x_(pt), y_(pt), θ_(pt)) of the path node closest to the position of the support foot, and the position (x_(en), y_(en)) of the obstacle in the environment, x, y, and θ are separately subjected to fuzzification processing in their respective ranges, subjected to fuzzy rule reasoning, and then subjected to defuzzification to finally obtain the specific foothold position (x_(next), y_(next), θ_(next)) of the swing foot in the available foothold range.

x_(sd), x_(en), y_(sd), y_(en), θ_(sd), and θ_(pt) are separately used as inputs of fuzzy control, and the current support foot of the biped robot is the swing foot in the previous step; thus the value of the yaw angle θ_(sd) of the current support foot of the biped robot is the value of θ_(next−1) of the swing foot in the previous step.

As shown in FIG. 5 , the process of fuzzy processing on x_(en) and x_(sd) is as follows:

{circle around (1)} The position of the path node closest to the position of the support foot is obtained through x_(sd) and y_(sd):

$\begin{matrix} {\left( {x_{pt},y_{pt}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{sd} - x_{i}} \right)^{2} + \left( {y_{sd} - y_{i}} \right)^{2}}}} & (1) \end{matrix}$

A difference x_(pt)−x_(pt−1) between x_(pt) calculated in this step and x_(pt−1) in the last step is used as an input, and a step length of the next step is predicted through a step length of the last step; meanwhile, x_(en) is used as another input, and the step length of the next step is predicted through the distance from the obstacle; Δx_(next) is output according to fuzzy rules and reasoning.

{circle around (2)} Fuzzification processing: the range of x_(pt)−x_(pt−1) is determined approximately as the range [−D_(min), D_(max)] of one step length, and the range is fuzzified and divided into four stages: backward, small step forward, medium step forward, and big step forward, with corresponding ranges being respectively

$\left\lbrack {{- D_{\min}},0} \right\rbrack,\left\lbrack {0,\frac{1}{2}D_{\max}} \right\rbrack,\left\lbrack {\frac{1}{3}D_{\max},\frac{2}{3}D_{\max}} \right\rbrack,{{{and}{}\left\lbrack {\frac{1}{2}D_{\max},D_{\max}} \right\rbrack};}$ a value range of x_(en) is approximately represented as

$\left\lbrack {\frac{1}{2}D_{\max},5D_{\max}} \right\rbrack$ and is fuzzified as very near, near, medium, far, and very far, with corresponding ranges being respectively

$\left\lbrack {\frac{1}{2}D_{\max},D_{\max}} \right\rbrack,\left\lbrack {\frac{3}{4}D_{\max},2D_{\max}} \right\rbrack,\left\lbrack {\frac{3}{2}D_{\max},3D_{\max}} \right\rbrack,\left\lbrack {\frac{5}{2}D_{\max},4D_{\max}} \right\rbrack,{{{and}\left\lbrack {4D_{\max},5D_{\max}} \right\rbrack};}$ the output Δx_(next) is fuzzified as backward, short, medium, and long, with corresponding ranges being respectively

$\left\lbrack {{- D_{\min}},0} \right\rbrack,\left\lbrack {0,\frac{1}{2}D_{\max}} \right\rbrack,\left\lbrack {\frac{1}{3}D_{\max},\frac{2}{3}D_{\max}} \right\rbrack,{{{and}\left\lbrack {\frac{1}{2}D_{\max},D_{\max}} \right\rbrack}.}$

All the inputs use a triangle method as a membership function, and have respective membership values being μ_(x).

{circle around (3)} Fuzzy rules and reasoning:

IF x_(pt)x_(pt−1)=back THEN x_(next)=backward;

IF x_(pt)−x_(pt−1)=small step forward AND x_(en)=very near, THEN x_(next)=short;

IF x_(pt)−x_(pt−1)=small step forward AND x_(en)=near, THEN x_(next)=short;

IF x_(pt)−x_(pt−1)=small step forward AND x_(en)=medium, THEN x_(next)=medium;

IF x_(pt)−x_(pt−1)=small step forward AND x_(en)=far, THEN x_(next)=long;

IF x_(pt)−x_(pt−1)=small step forward AND x_(en)=very far, THEN x_(next)=long;

IF x_(pt)−x_(pt−1)=medium step forward AND x_(en)=very near, THEN x_(next)=short;

IF x_(pt)−x_(pt−1)=medium step forward AND x_(en)=near, THEN x_(next)=short;

IF x_(pt)−x_(pt−1)=medium step forward AND x_(en)=medium, THEN x_(next)=medium;

IF x_(pt)−x_(pt−1)=medium step forward AND x_(en)=far, THEN x_(next)=long;

IF x_(pt)−x_(pt−1)=medium step forward AND x_(en)=very far, THEN x_(next)=long;

IF x_(pt)−x_(pt−1)=big step forward AND x_(en)=very near, THEN x_(next)=short;

IF x_(pt)−x_(pt−1)=big step forward AND x_(en)=near, THEN x_(next)=short;

IF x_(pt)−x_(pt−1)=big step forward AND x_(en)=medium, THEN x_(next)=medium;

IF x_(pt)−x_(pt−1)=big step forward AND x_(en)=far, THEN x_(next)=medium;

IF x_(pt)−x_(pt−1)=big step forward AND x_(en)=very far, THEN x_(next)=long.

{circle around (4)} Defuzzification

Defuzzification is performed using a centroid method:

$\begin{matrix} {{\Delta x_{next}} = \frac{{\left( {x_{pt} - x_{{pt} - 1}} \right)\mu_{x_{pt} - x_{{pt} - 1}}} + {x_{en}\mu_{x_{en}}}}{\mu_{x_{pt} - x_{{pt} - 1}} + \mu_{x_{en}}}} & (2) \end{matrix}$

The process of fuzzy processing on y_(en) and y_(sd) is as follows:

{circle around (1)} The position (x_(pt), y_(pt)) of the path node closest to the position of the support foot is obtained from equation (1).

A difference y_(pt)−y_(pt−1) between y_(pt) calculated in this step and y_(pt−1) in the last step is used as an input, and a step length of the next step is predicted through a step length of the last step; meanwhile, y_(en) is used as another input, and the step length of the next step is predicted through the distance from the obstacle; y_(next) is output according to fuzzy rules and reasoning.

{circle around (2)} Fuzzification processing: the range of y_(pt)−y_(pt−1) is determined approximately as the range [L_(min), L_(max)] of one step swing, and the range is fuzzified and divided into four stages: inward, small swing outward, medium swing outward, and big swing outward, with corresponding ranges being respectively

$\left\lbrack {L_{\min},B} \right\rbrack,\left\lbrack {{B,B} + {\frac{1}{2}\left( {L_{\max} - B} \right)}} \right\rbrack,\left\lbrack {B + {\frac{1}{3}\left( {L_{\max} - B} \right),B} + {\frac{2}{3}\left( {L_{\max} - B} \right)}} \right\rbrack,{{{and}\left\lbrack {B + {\frac{1}{2}\left( {L_{\max} - B} \right),L_{\max}}} \right\rbrack};}$ a value range of y_(en) is approximately represented as [L_(max), 4L_(max)], and fuzzified as very near, near, medium, far, and very far, with corresponding ranges being respectively

${\left\lbrack {L_{\max},2L_{\max}} \right\rbrack,\left\lbrack {\frac{3}{2}L_{\max},\frac{5}{2}L_{\max}} \right\rbrack,\left\lbrack {2L_{\max},3L_{\max}} \right\rbrack,\left\lbrack {\frac{5}{2}L_{\max},\frac{7}{2}L_{\max}} \right\rbrack,{and}}{\left\lbrack {3L_{\max},4L_{\max}} \right\rbrack;}$ the output Δy_(next) is fuzzified as inward, small, medium, and large, with corresponding ranges being respectively

$\left\lbrack {L_{\min},B} \right\rbrack,\left\lbrack {{B,B} + {\frac{1}{2}\left( {L_{\max} - B} \right)}} \right\rbrack,\left\lbrack {B + {\frac{1}{3}\left( {L_{\max} - B} \right),B} + {\frac{2}{3}\left( {L_{\max} - B} \right)}} \right\rbrack,{{{and}{}\left\lbrack {B + {\frac{1}{2}\left( {L_{\max} - B} \right),L_{\max}}} \right\rbrack}.}$

All the inputs use a triangle method as a membership function, and have respective membership values being μ_(y).

{circle around (3)} Fuzzy rules and reasoning

IF y_(pt)−y_(pt−1)=inward THEN Δy_(next)=inward;

IF y_(pt)−y_(pt−1)=small swing outward AND y_(en)=very near, THEN Δy_(next)=small;

IF y_(pt)−y_(pt−1)=small swing outward AND y_(en)=near, THEN Δy_(next)=small;

IF y_(pt)−y_(pt−1)=small swing outward AND y_(en)=medium, THEN Δy_(next)=medium;

IF y_(pt)−y_(pt−1)=small swing outward AND y_(en)=far, THEN Δy_(next)=large;

IF y_(pt)−y_(pt−1)=small swing outward AND y_(en)=very far, THEN Δy_(next)=large;

IF y_(pt)−y_(pt−1)=medium swing outward AND y_(en)=very near, THEN Δy_(next)=small;

IF y_(pt)−y_(pt−1)=medium swing outward AND y_(en)=near, THEN Δy_(next)=small;

IF y_(pt)−y_(pt−1)=medium swing outward AND y_(en)=medium, THEN Δy_(next)=medium;

IF y_(pt)−y_(pt−1)=medium swing outward AND y_(en)=far, THEN Δy_(next)=large;

IF y_(pt)−y_(pt−1)=medium swing outward AND y_(en)=very far, THEN Δy_(next)=large;

IF y_(pt)−y_(pt−1)=big swing outward AND y_(en)=very near, THEN Δy_(next)=small;

IF y_(pt)−y_(pt−1)=big swing outward AND y_(en)=near, THEN Δy_(next)=small;

IF y_(pt)−y_(pt−1)=big swing outward AND y_(en)=medium, THEN Δy_(next)=medium;

IF y_(pt)−y_(pt−1)=big swing outward AND y_(en)=far, THEN Δy_(next)=large;

IF y_(pt)−y_(pt−1)=big swing outward AND y_(en)=very far, THEN Δy_(next)=large.

{circle around (4)} Defuzzification

Defuzzification is performed using a centroid method:

$\begin{matrix} {{\Delta y_{next}} = \frac{{\left( {y_{pt} - y_{{pt} - 1}} \right)\mu_{y_{pt} - y_{{pt} - 1}}} + {y_{en}\mu_{y_{en}}}}{\mu_{y_{pt} - y_{{pt} - 1}} + \mu_{y_{en}}}} & (3) \end{matrix}$

The process of fuzzy processing on θ_(sd) and θ_(pt) is as follows:

{circle around (1)} The current support foot of the biped robot is the swing foot in the previous step, and thus the value of the yaw angle θ_(sd) of the support foot of the biped robot is the value θ_(next−1) of the swing foot in the previous step, and is used as an input, and a yaw angle in the next step is predicted through a yaw angle in the previous step; θ_(pt) is obtained from equations (4) and (5) and is used as another input, and the yaw angle in the next step is predicted through the yaw angle in the previous step.

$\begin{matrix} {\left( {x_{{pt} + 1},y_{{pt} + 1}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{next} - x_{i}} \right)^{2} + \left( {y_{next} - y_{i}} \right)^{2}}}} & (4) \end{matrix}$ $\begin{matrix} {\theta_{pt} = {\tan^{- 1}\frac{y_{{pt} + 1} - y_{pt}}{x_{{pt} + 1} - x_{pt}}}} & (5) \end{matrix}$

where x_(pt+1), y_(pt+1) is a path node closest to a foothold position after a current swing foot lands.

{circle around (2)} Fuzzification processing

A variation range of θ_(sd) is [−θ_(min), θ_(max)], and the range is fuzzified and divided into four stages: inward yaw, small-amplitude outward yaw, medium-amplitude outward yaw, and large-amplitude outward yaw, with corresponding ranges being respectively

$\left\lbrack {{- \theta_{\min}},0} \right\rbrack,\left\lbrack {0,\frac{1}{2}\theta_{\max}} \right\rbrack,\left\lbrack {\frac{1}{3}\theta_{\max},\frac{2}{3}\theta_{\max}} \right\rbrack,{{{and}\left\lbrack {\frac{1}{2}\theta_{\max},\theta_{\max}} \right\rbrack};}$ the range of θ_(pt) is approximately represented as

$\left\lbrack {{- \frac{\pi}{2}},\frac{\pi}{2}} \right\rbrack,$ and is fuzzified as negative big orientation, negative small orientation, medium, positive small orientation, and positive big orientation, with corresponding ranges being respectively

$\left\lbrack {{{- \frac{\pi}{2}},} - \frac{\pi}{4}} \right\rbrack,\left\lbrack {{{- \frac{\pi}{3}},} - \frac{\pi}{6}} \right\rbrack,\left\lbrack {{- \frac{\pi}{4}},\frac{\pi}{4}} \right\rbrack,\left\lbrack {\frac{\pi}{6},\frac{\pi}{3}} \right\rbrack,{{{and}\left\lbrack {\frac{\pi}{4},\frac{\pi}{2}} \right\rbrack};}$ the output Δθ_(next) is fuzzified as inward yaw, small-amplitude outward yaw, medium-amplitude outward yaw, and large-amplitude outward yaw, with corresponding ranges being respectively

$\left\lbrack {{- \theta_{\min}},0} \right\rbrack,\left\lbrack {0,\frac{1}{2}\theta_{\max}} \right\rbrack,\left\lbrack {\frac{1}{3}\theta_{\max},\frac{2}{3}\theta_{\max}} \right\rbrack,{{{and}\left\lbrack {\frac{1}{2}\theta_{\max},\theta_{\max}} \right\rbrack}.}$

All the inputs use a triangle method as a membership function, and have respective membership values being μ_(θ).

{circle around (3)} Fuzzy rules and reasoning

When the support foot is a left foot:

IF θ_(sd)=inward yaw AND θ_(pt)=negative big orientation, THEN Δθ_(next)=large-amplitude outward yaw;

IF θ_(sd)=inward yaw AND θ_(pt)=negative small orientation, THEN Δθ_(next)=medium-amplitude outward yaw;

IF θ_(sd)=inward yaw AND θ_(pt)=medium, THEN Δθ_(next)=small-amplitude outward yaw;

IF θ_(sd)=inward yaw AND θ_(pt)=positive small orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=inward yaw AND θ_(pt)=positive big orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=negative big orientation, THEN Δθ_(next)=large-amplitude outward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=negative small orientation, THEN Δθ_(next)=medium-amplitude outward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=medium, THEN Δθ_(next)=small-amplitude outward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=positive small orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=positive big orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=negative big orientation, THEN Δθ_(next)=large-amplitude outward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=negative small orientation, THEN Δθ_(next)=medium-amplitude outward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=medium, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=positive small orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=positive big orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=negative big orientation, THEN Δθ_(next)=medium-amplitude outward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=negative small orientation, THEN Δθ_(next)=small-amplitude outward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=medium, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=positive small orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=positive big orientation, THEN Δθ_(next)=inward yaw;

When the support foot is a right foot:

IF θ_(sd)=inward yaw AND θ_(pt)=negative big orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=inward yaw AND θ_(pt)=negative small orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=inward yaw AND θ_(pt)=medium, THEN Δθ_(next)=small-amplitude outward yaw;

IF θ_(sd)=inward yaw AND θ_(pt)=positive small orientation, THEN Δθ_(next)=medium-amplitude outward yaw;

IF θ_(sd)=inward yaw AND θ_(pt)=positive big orientation, THEN Δθ_(next)=large-amplitude outward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=negative big orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=negative small orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=medium, THEN Δθ_(next)=small-amplitude outward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=positive small orientation, THEN Δθ_(next)=medium-amplitude outward yaw;

IF θ_(sd)=small-amplitude outward yaw AND θ_(pt)=positive big orientation, THEN Δθ_(next)=large-amplitude outward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=negative big orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=negative small orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=medium, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=positive small orientation, THEN Δθ_(next)=small-amplitude outward yaw;

IF θ_(sd)=medium-amplitude outward yaw AND θ_(pt)=positive big orientation, THEN Δθ_(next)=medium-amplitude inward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=negative big orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=negative small orientation, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=medium, THEN Δθ_(next)=inward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=positive small orientation, THEN Δθ_(next)=small-amplitude outward yaw;

IF θ_(sd)=large-amplitude outward yaw AND θ_(pt)=positive big orientation, THEN Δθ_(next)=medium-amplitude inward yaw.

{circle around (4)} Defuzzification

Defuzzification is performed using a centroid method:

$\begin{matrix} {{\Delta\theta_{next}} = \frac{{\theta_{pt}\mu_{\theta_{pt}}} + {\theta_{sd}\mu_{\theta_{sd}}}}{\mu_{\theta_{pt}} + \mu_{\theta_{sd}}}} & (6) \end{matrix}$

Finally, the three outputs (x_(next), y_(next), θ_(next)) of the fuzzy controller are:

-   -   x_(next)=x_(sd)+Δx_(next), y_(next)=y_(sd)+Δy_(next),         θ_(next)=θ_(sd)+Δθ_(next)

Thus, the specific foothold position of the biped robot in the world coordinate system can be determined.

The described embodiments are preferred embodiments of the present disclosure, but the present disclosure is not limited to the aforementioned embodiments. Any obvious improvements, substitutions or modifications that can be made by those skilled in the art without departing from the essential content of the present disclosure shall fall within the protection scope of the present disclosure. 

What is claimed is:
 1. A control method of a foothold position control system for a biped robot, wherein the foothold position control system comprises a laser radar or vision sensor, a gyroscope, a six-component force sensor, and an industrial computer, wherein a fuzzy controller in the industrial computer separately uses x_(sd), x_(en), y_(sd), y_(en), θ_(sd), and θ_(pt) as inputs and performs fuzzy processing to obtain a specific foothold position of a swing foot in an available foothold area, wherein x_(sd), y_(sd) is a real-time position of a support foot of a biped robot obtained by the six-component force sensor, x_(en), y_(en) is a position of an obstacle in a robot body coordinate system obtained by the laser radar or vision sensor, θ_(sd) is an initial yaw angle of the biped robot obtained by the gyroscope, and θ_(pt) is an angle between a straight line formed by a current path node and an associated path node in a next step and an x axis of a world coordinate system; wherein the control method comprising: planning a passing path; determining the available foothold area of the swing foot on the passing path according to step-length constraints, movement capabilities, foot sizes, and center offsets of the biped robot; and performing fuzzy processing to determine a specific foothold position of the biped robot; wherein the fuzzy processing comprises fuzzification, fuzzy rule reasoning, and defuzzification; wherein a process of the fuzzy processing on x_(en) and x_(sd) is: inputting x_(pt)−x_(pt−1) and x_(en), and outputting Δ^(x) _(next); (1) fuzzification fuzzifying x_(pt)−x_(pt−1) as backward, small step forward, medium step forward, and big step forward, with corresponding ranges being respectively $\left\lbrack {{- D_{\min}},0} \right\rbrack,\left\lbrack {0,\frac{1}{2}D_{\max}} \right\rbrack,\left\lbrack {\frac{1}{3}D_{\max},\frac{2}{3}D_{\max}} \right\rbrack,{{{and}\left\lbrack {\frac{1}{2}D_{\max},D_{\max}} \right\rbrack};}$ fuzzifying x_(en) as very near, near, medium, far, and very far, with corresponding ranges being respectively $\left\lbrack {\frac{1}{2}D_{\max},D_{\max}} \right\rbrack,\left\lbrack {\frac{3}{4}D_{\max},2D_{\max}} \right\rbrack,\left\lbrack {\frac{3}{2}D_{\max},3D_{\max}} \right\rbrack,\left\lbrack {\frac{5}{2}D_{\max},4D_{\max}} \right\rbrack,{{{and}\left\lbrack {4D_{\max},5D_{\max}} \right\rbrack};}$ fuzzifying Δx_(next) as backward, short, medium, and long, with corresponding ranges being respectively $\left\lbrack {{- D_{\min}},0} \right\rbrack,\left\lbrack {0,\frac{1}{2}D_{\max}} \right\rbrack,\left\lbrack {\frac{1}{3}D_{\max},\frac{2}{3}D_{\max}} \right\rbrack,{{{and}\left\lbrack {\frac{1}{2}D_{\max},D_{\max}} \right\rbrack};}$ wherein D_(max) is a maximum forward movable distance of the swing foot, and D_(min) is a maximum backward movable distance of the swing foot; (2) fuzzy rule reasoning if x_(pt)−x_(pt−1)=backward, then x_(next)=backward; if x_(pt)−x_(pt−1)=small step forward, and x_(en)=very near, then x_(next)=short; x_(pt)−x_(pt−1)=small step forward, and x_(en)=near, then x_(next)=short; x_(pt)−x_(pt−1)=small step forward, and x_(en)=medium, then x_(next)=medium; x_(pt)−x_(pt−1)=small step forward, and x_(en)=far, then x_(next)=long; x_(pt)−x_(pt−1)=small step forward, and x_(en)=very far, then x_(next)=long; x_(pt)−x_(pt−1)=medium step forward, and x_(en)=very near, then x_(next)=short; x_(pt)−x_(pt−1)=medium step forward, and x_(en)=near, then x_(next)=short; x_(pt)−x_(pt−1)=medium step forward, and x_(en)=medium, then x_(next)=medium; x_(pt)−x_(pt−1)=medium step forward, and x_(en)=far, then x_(next)=long; x_(pt)−x_(pt−1)=medium step forward, and x_(en)=very far, then x_(next)=long; x_(pt)−x_(pt−1)=big step forward, and x_(en)=very near, then x_(next)=short; x_(pt)−x_(pt−1)=big step forward, and x_(en)=near, then x_(next)=short; x_(pt)−x_(pt−1)=big step forward, and x_(en)=medium, then x_(next)=medium; x_(pt)−x_(pt−1)=big step forward, and x_(en)=far, then x_(next)=medium; x_(pt)−x_(pt−1)=big step forward, and x_(en)=very far, then x_(next)=long; and (3) defuzzification using a centroid method ${\Delta x_{next}} = \frac{{\left( {x_{pt} - x_{{pt} - 1}} \right)\mu_{x_{pt} - x_{{pt} - 1}}} + {x_{en}\mu_{x_{en}}}}{\mu_{x_{pt} - x_{{pt} - 1}} + \mu_{x_{en}}}$ wherein u is a membership value.
 2. The control method according to claim 1, wherein the specific foothold position of the biped robot is (x_(next), y_(next), θ_(next)), wherein x_(next)=x_(sd)+Δx_(next), y_(next)=y_(sd)+Δy_(next), and θ_(next)=θ_(sd)+Δθ_(next).
 3. The control method according to claim 1, wherein the ${\theta_{pt} = {\tan^{- 1}\frac{y_{{pt} + 1} - y_{pt}}{x_{{pt} + 1} - x_{pt}}}},{{\left( {x_{{pt} + 1},y_{{pt} + 1}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{next} - x_{i}} \right)^{2} + \left( {y_{next} - y_{i}} \right)^{2}}}};}$ wherein x_(pt), y_(pt) is a path node closest to a position of a current support foot, x_(pt+1), y_(pt+1) is a path node closest to a foothold position after a current swing foot lands, x_(next), y_(next) is a specific foothold position of the swing foot in an available foothold range, and x_(i), y_(i) is a path node.
 4. The control method according to claim 2, wherein the ${\theta_{pt} = {\tan^{- 1}\frac{y_{{pt} + 1} - y_{pt}}{x_{{pt} + 1} - x_{pt}}}},{{\left( {x_{{pt} + 1},y_{{pt} + 1}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{next} - x_{i}} \right)^{2} + \left( {y_{next} - y_{i}} \right)^{2}}}};}$ wherein x_(pt), y_(pt) is a path node closest to a position of a current support foot, x_(pt+1), y_(pt+1) is a path node closest to a foothold position after a current swing foot lands, x_(next), y_(next) is a specific foothold position of the swing foot in an available foothold range, and x_(i), y_(i) is a path node.
 5. A control method of a foothold position control system for a biped robot, wherein the foothold position control system comprises a laser radar or vision sensor, a gyroscope, a six-component force sensor, and an industrial computer, wherein a fuzzy controller in the industrial computer separately uses x_(sd), x_(en), y_(sd), y_(en), θ_(sd), and θ_(pt) as inputs and performs fuzzy processing to obtain a specific foothold position of a swing foot in an available foothold area, wherein x_(sd), y_(sd) is a real-time position of a support foot of a biped robot obtained by the six-component force sensor, x_(en), y_(en) is a position of an obstacle in a robot body coordinate system obtained by the laser radar or vision sensor, θ_(sd) is an initial yaw angle of the biped robot obtained by the gyroscope, and θ_(pt) is an angle between a straight line formed by a current path node and an associated path node in a next step and an x axis of a world coordinate system; wherein the control method comprising: planning a passing path; determining the available foothold area of the swing foot on the passing path according to step-length constraints, movement capabilities, foot sizes, and center offsets of the biped robot; and performing fuzzy processing to determine a specific foothold position of the biped robot; wherein the fuzzy processing comprises fuzzification, fuzzy rule reasoning, and defuzzification; wherein a process of the fuzzy processing on y_(en) and y_(sd) is: inputting y_(pt)−y_(pt−1) and y_(en), and outputting Δy_(next); (1) fuzzification fuzzifying y_(pt)−y_(pt−1) as inward, small swing outward, medium swing outward, and big swing outward, with corresponding ranges being respectively $\left\lbrack {L_{\min},B} \right\rbrack,\left\lbrack {{B,B} + {\frac{1}{2}\left( {L_{\max} - B} \right)}} \right\rbrack,\left\lbrack {B + {\frac{1}{3}\left( {L_{\max} - B} \right),B} + {\frac{2}{3}\left( {L_{\max} - B} \right)}} \right\rbrack,{{{and}\left\lbrack {B + {\frac{1}{2}\left( {L_{\max} - B} \right),L_{\max}}} \right\rbrack};}$ fuzzifying y_(en) as very near, near, medium, far, and very far, with corresponding ranges being respectively $\left\lbrack {L_{\max},\ 2L_{\max}} \right\rbrack,\left\lbrack {\frac{3}{2}L_{\max},\frac{5}{2}L_{\max}} \right\rbrack,\left\lbrack {2L_{\max},3L_{\max}} \right\rbrack,\left\lbrack {\frac{5}{2}L_{\max},\frac{7}{2}L_{\max}} \right\rbrack,{{{and}\left\lbrack {3L_{\max},4L_{\max}} \right\rbrack};}$ fuzzifying Δy_(next) as inward, small, medium, and large, with corresponding ranges being respectively $\left\lbrack {L_{\min},B} \right\rbrack,\left\lbrack {{B,B} + {\frac{1}{2}\left( {L_{\max} - B} \right)}} \right\rbrack,\left\lbrack {B + {\frac{1}{3}\left( {L_{\max} - B} \right),B} + {\frac{2}{3}\left( {L_{\max} - B} \right)}} \right\rbrack,{{{and}\left\lbrack {B + {\frac{1}{2}\left( {L_{\max} - B} \right),L_{\max}}} \right\rbrack};}$ wherein L_(max) is a maximum outward movable distance, L_(min) is a maximum inward movable distance, and B is a distance between projections of centers of gravity of two legs when the biped robot stands upright; (2) fuzzy rule reasoning if y_(pt)−y_(pt−1)=inward, then Δy_(next)=inward; if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=very near, then Δy_(next)=small; if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=near, then Δy_(next)=small; if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=medium, then Δy_(next)=medium; if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=far, then Δy_(next)=large; if y_(pt)−y_(pt−1)=small swing outward, and y_(en)=very far, then Δy_(next)=large; if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=very near, then Δy_(next)=small; if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=near, then Δy_(next)=small; if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=medium, then Δy_(next)=medium; if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=far, then Δy_(next)=large; if y_(pt)−y_(pt−1)=medium swing outward, and y_(en)=very far, then Δy_(next)=large; if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=very near, then Δy_(next)=small; if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=near, then Δy_(next)=small; if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=medium, then Δy_(next)=medium; if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=far, then Δy_(next)=large; if y_(pt)−y_(pt−1)=big swing outward, and y_(en)=very far, then Δy_(next)=large; and (3) defuzzification using a centroid method ${\Delta y_{next}} = \frac{{\left( {y_{pt} - y_{{pt} - 1}} \right)\mu_{y_{pt} - y_{{pt} - 1}}} + {y_{en}\mu_{y_{en}}}}{\mu_{y_{pt}y_{{pt} - 1}} + \mu_{y_{en}}}$ wherein u is a membership value.
 6. The control method according to claim 5, wherein the specific foothold position of the biped robot is (x_(next), y_(next), θ_(next)), wherein x_(next)=x_(sd)+Δx_(next), y_(next)=y_(sd)+Δy_(next), and θ_(next)=θ_(sd)+Δθ_(next).
 7. The control method according to claim 5, wherein the ${\theta_{pt} = {\tan^{- 1}\frac{y_{{pt} + 1} - y_{pt}}{x_{{pt} + 1} - x_{pt}}}},{{\left( {x_{{pt} + 1},y_{{pt} + 1}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{next} - x_{i}} \right)^{2} + \left( {y_{next} - y_{i}} \right)^{2}}}};}$ wherein x_(pt), y_(pt) is a path node closest to a position of a current support foot, x_(pt+1), y_(pt+1) is a path node closest to a foothold position after a current swing foot lands, x_(next), y_(next) is a specific foothold position of the swing foot in an available foothold range, and x_(i), y_(i) is a path node.
 8. The control method according to claim 6, wherein the ${\theta_{pt} = {\tan^{- 1}\frac{y_{{pt} + 1} - y_{pt}}{x_{{pt} + 1} - x_{pt}}}},{{\left( {x_{{pt} + 1},y_{{pt} + 1}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{next} - x_{i}} \right)^{2} + \left( {y_{next} - y_{i}} \right)^{2}}}};}$ wherein x_(pt), y_(pt) is a path node closest to a position of a current support foot, x_(pt+1), y_(pt+1) is a path node closest to a foothold position after a current swing foot lands, x_(next), y_(next) is a specific foothold position of the swing foot in an available foothold range, and x_(i), y_(i) is a path node.
 9. A control method of a foothold position control system for a biped robot, wherein the foothold position control system comprises a laser radar or vision sensor, a gyroscope, a six-component force sensor, and an industrial computer, wherein a fuzzy controller in the industrial computer separately uses x_(sd), x_(en), y_(sd), y_(en), θ_(sd), and θ_(pt) as inputs and performs fuzzy processing to obtain a specific foothold position of a swing foot in an available foothold area, wherein x_(sd), y_(sd) is a real-time position of a support foot of a biped robot obtained by the six-component force sensor, x_(en), y_(en) is a position of an obstacle in a robot body coordinate system obtained by the laser radar or vision sensor, θ_(sd) is an initial yaw angle of the biped robot obtained by the gyroscope, and θ_(pt) is an angle between a straight line formed by a current path node and an associated path node in a next step and an x axis of a world coordinate system; wherein the control method comprising: planning a passing path; determining the available foothold area of the swing foot on the passing path according to step-length constraints, movement capabilities, foot sizes, and center offsets of the biped robot; and performing fuzzy processing to determine a specific foothold position of the biped robot; wherein the fuzzy processing comprises fuzzification, fuzzy rule reasoning, and defuzzification; wherein a process of the fuzzy processing on θ_(sd) and θ_(pt) is: inputting θ_(sd) and θ_(pt), and outputting Δθ_(next); (1) fuzzification fuzzifying θ_(sd) as inward yaw, small-amplitude outward yaw, medium-amplitude outward yaw, and large-amplitude outward yaw, with corresponding ranges being respectively $\left\lbrack {{- \theta_{\min}},0} \right\rbrack,\left\lbrack {0,\frac{1}{2}\theta_{\max}} \right\rbrack,\left\lbrack {\frac{1}{3}\theta_{\max},\frac{2}{3}\theta_{\max}} \right\rbrack,{{{and}\left\lbrack {\frac{1}{2}\theta_{\max},\theta_{\max}} \right\rbrack};}$ fuzzifying θ_(pt) as negative big orientation, negative small orientation, medium, positive small orientation, and positive big orientation, with corresponding ranges being respectively $\left\lbrack {{- \frac{\pi}{2}},{- \frac{\pi}{4}}} \right\rbrack,\left\lbrack {{- \frac{\pi}{3}},{- \frac{\pi}{6}}} \right\rbrack,\left\lbrack {{- \frac{\pi}{4}},\frac{\pi}{4}} \right\rbrack,\left\lbrack {\frac{\pi}{6},\frac{\pi}{3}} \right\rbrack,{{{and}\left\lbrack {\frac{\pi}{4},\frac{\pi}{2}} \right\rbrack};}$ fuzzifying Δθ_(next) as inward yaw, small-amplitude outward yaw, medium-amplitude outward yaw, and large-amplitude outward yaw, with corresponding ranges being respectively $\left\lbrack {{- \theta_{\min}},0} \right\rbrack,\left\lbrack {0,{\frac{1}{2}\theta_{\max}}} \right\rbrack,\left\lbrack {{\frac{1}{3}\theta_{\max}},{\frac{2}{3}\theta_{\max}}} \right\rbrack,{{{and}\left\lbrack {{\frac{1}{2}\theta_{\max}},\theta_{\max}} \right\rbrack};}$ wherein θ_(min) is a maximum inward yaw angle of the swing foot, and θ_(max) is a maximum outward yaw angle of the swing foot; (2) fuzzy rule reasoning when the support foot is a left foot: if θ_(sd)=inward yaw, and θ_(pt)=negative big orientation, then Δθ_(next)=large-amplitude outward yaw; if θ_(sd)=inward yaw, and θ_(pt)=negative small orientation, then Δθ_(next)=medium-amplitude outward yaw; if θ_(sd)=inward yaw, and θ_(pt)=medium, then Δθ_(next)=small-amplitude outward yaw; if θ_(sd)=inward yaw, and θ_(pt)=positive small orientation, then Δθ_(next)=inward yaw; if θ_(sd)=inward yaw, and θ_(pt)=positive big orientation, then Δθ_(next)=inward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=negative big orientation, then Δθ_(next)=large-amplitude outward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=negative small orientation, then Δθ_(next)=medium-amplitude outward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=medium, then Δθ_(next)=small-amplitude outward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=positive small orientation, then Δθ_(next)=inward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=positive big orientation, then Δθ_(next)=inward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=negative big orientation, then Δθ_(next)=large-amplitude outward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=negative small orientation, then Δθ_(next)=medium-amplitude outward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=medium, then Δθ_(next)=inward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=positive small orientation, then Δθ_(next)=inward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=positive big orientation, then Δθ_(next)=inward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=negative big orientation, then Δθ_(next)=medium-amplitude outward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=negative small orientation, then Δθ_(next)=small-amplitude outward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=medium, then Δθ_(next)=inward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=positive small orientation, then Δθ_(next)=inward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=positive big orientation, then Δθ_(next)=inward yaw; when the support foot is a right foot: if θ_(sd)=inward yaw, and θ_(pt)=negative big orientation, then Δθ_(next)=inward yaw; if θ_(sd)=inward yaw, and θ_(pt)=negative small orientation, then Δθ_(next)=inward yaw; if θ_(sd)=inward yaw, and θ_(pt)=medium, then Δθ_(next)=small-amplitude outward yaw; if θ_(sd)=inward yaw, and θ_(pt)=positive small orientation, then Δθ_(next)=medium-amplitude outward yaw; if θ_(sd)=inward yaw, and θ_(pt)=positive big orientation, then Δθ_(next)=large-amplitude outward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=negative big orientation, then Δθ_(next)=inward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=negative small orientation, then Δθ_(next)=inward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=medium, then Δθ_(next)=small-amplitude outward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=positive small orientation, then Δθ_(next)=medium-amplitude outward yaw; if θ_(sd)=small-amplitude outward yaw, and θ_(pt)=positive big orientation, then Δθ_(next)=large-amplitude outward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=negative big orientation, then Δθ_(next)=inward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=negative small orientation, then Δθ_(next)=inward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=medium, then Δθ_(next)=inward yaw; if ∝_(sd)=medium-amplitude outward yaw, and θ_(pt)=positive small orientation, then Δθ_(next)=small-amplitude outward yaw; if θ_(sd)=medium-amplitude outward yaw, and θ_(pt)=positive big orientation, then Δθ_(next)=medium-amplitude inward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=negative big orientation, then Δθ_(next)=inward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=negative small orientation, then Δθ_(next)=inward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=medium, then Δθ_(next)=inward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=positive small orientation, then Δθ_(next)=small-amplitude outward yaw; if θ_(sd)=large-amplitude outward yaw, and θ_(pt)=positive big orientation, then Δθ_(next)=medium-amplitude inward yaw; and (3) defuzzification defuzzification using a centroid method: ${\Delta\theta_{next}} = \frac{{\theta_{pt}\mu_{\theta_{pt}}} + {\theta_{sd}\mu_{\theta_{sd}}}}{\mu_{\theta_{pt}} + \mu_{\theta_{sd}}}$ wherein u is a membership value.
 10. The control method according to claim 9, wherein the specific foothold position of the biped robot is (x_(next), y_(next), θ_(next)), wherein x_(next)=x_(sd)+Δx_(next), y_(next)=y_(sd)+Δy_(next), and θ_(next)=θ_(sd)+Δθ_(next).
 11. The control method according to claim 9, wherein the ${\theta_{pt} = {\tan^{- 1}\frac{y_{{pt} + 1} - y_{pt}}{x_{{pt} + 1} - x_{pt}}}},{{\left( {x_{{pt} + 1},y_{{pt} + 1}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{next} - x_{i}} \right)^{2} + \left( {y_{next} - y_{i}} \right)^{2}}}};}$ wherein x_(pt), y_(pt) is a path node closest to a position of a current support foot, x_(pt+1), y_(pt+1) is a path node closest to a foothold position after a current swing foot lands, x_(next), y_(next) is a specific foothold position of the swing foot in an available foothold range, and x_(i), y_(i) is a path node.
 12. The control method according to claim 10, wherein the ${\theta_{pt} = {\tan^{- 1}\frac{y_{{pt} + 1} - y_{pt}}{x_{{pt} + 1} - x_{pt}}}},{{\left( {x_{{pt} + 1},y_{{pt} + 1}} \right) = {\min\limits_{1 \leq i \leq n}\sqrt{\left( {x_{next} - x_{i}} \right)^{2} + \left( {y_{next} - y_{i}} \right)^{2}}}};}$ wherein x_(pt), y_(pt) is a path node closest to a position of a current support foot, x_(pt+1), y_(pt+1) is a path node closest to a foothold position after a current swing foot lands, x_(next), y_(next) is a specific foothold position of the swing foot in an available foothold range, and x_(i), y_(i) is a path node. 